package com.feige.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.feige.pojo.Clazz;
import com.feige.pojo.User;
import com.feige.pojo.vo.CourseVo;

/**
 * <p>
 * 班级表 服务类
 * </p>
 *
 * @author feige
 * @since 2020-11-20
 */
public interface ClazzService extends IService<Clazz> {

    /**
     * 创建一个班级
     * @param clazz
     * @return
     */
    boolean createClazz(Clazz clazz);

    /**
     * 删除一个班级
     * @param id
     * @return
     */
    boolean deleteClazzById(String id);


    /**
     * 通过邀请码查询班级
     * @param code
     * @return
     */
    CourseVo getClazzByInvestCode(String code);

    /**
     * 通过ID查询班级
     * @param id
     * @return
     */
    CourseVo getClazzVoById(String id);


    /**
     * 通过班级id查询班级创建者
     * @param clazzId
     * @return
     */
    User getUserByClazzId(String clazzId);

    /**
     * 通过ID查询班级，先从redis中查找
     * @param id 班级ID
     * @return
     */
    Clazz getClazzById(String id);

    /**
     * 班级人数加一
     * @param clazzId
     * @return
     */
    boolean incrementBy(String clazzId);


    /**
     * 班级人数加一
     * @param clazzId
     * @return
     */
    boolean decrementBy(String clazzId);
}
